/**
 * Bestpay.com.cn Inc.
 * Copyright (c) 2011-2019 All Rights Reserved.
 */
package javabasics.basics.string;

import java.util.StringTokenizer;

/**
 * @author zhaorongzhang
 * @version Id: StringTest.java, v 0.1 2019/6/2 1:09 zhaorongzhang Exp $$
 */
public class StringTest {

    public static void main(String[] args) {
//        String orgStr = init();

        String orgStr = null;
        int initSize = 10000;
        StringBuffer sb = new StringBuffer(initSize);
        for (int i = 0; i < initSize; i++) {
            sb.append(i);
            sb.append(";");
        }
        orgStr = sb.toString();

        long startTime = System.currentTimeMillis();

        // 1. 使用 split 分割
        // 耗时 2999 ms
//        for (int i = 0; i < initSize; i++) {
//            orgStr.split(";");
//        }


        // 2. 使用 StringTokenizer 分割
        // 耗时 106 ms
//        StringTokenizer stringTokenizer = new StringTokenizer(orgStr, ";");
//        for (int i = 0; i < 10000; i++) {
//            while (stringTokenizer.hasMoreTokens()) {
//                System.out.println(stringTokenizer.nextToken());
//            }
//        }


        // 3. 自定义分割方法
        // 耗时 138 ms
//        String temp = orgStr;
//        for (int i = 0; i < 10000; i++) {
//            while (true) {
//                String splitStr = null;
//                int j = temp.indexOf(';');
//                if (j < 0) {
//                    break;
//                }
//                splitStr = temp.substring(0, j);
//                temp = temp.substring(j + 1);
//            }
//        }

        System.out.println("time is " + (System.currentTimeMillis() - startTime));

    }

}